.TH std::ranges::cartesian_product_view::iterator::operator++,--,+=,-= 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::ranges::cartesian_product_view::iterator::operator++,--,+=,-= \- std::ranges::cartesian_product_view::iterator::operator++,--,+=,-=

.SH Synopsis
   constexpr /*iterator*/& operator++();                              \fB(1)\fP (since C++23)
   constexpr void operator++( int );                                  \fB(2)\fP (since C++23)
   constexpr /*iterator*/ operator++( int )                           \fB(3)\fP (since C++23)
     requires ranges::forward_range</*maybe-const*/<Const, First>>;
   constexpr /*iterator*/& operator--()
     requires /*cartesian-product-is-bidirectional*/<Const, First,    \fB(4)\fP (since C++23)
   Vs...>;
   constexpr /*iterator*/ operator--( int )
     requires /*cartesian-product-is-bidirectional*/<Const, First,    \fB(5)\fP (since C++23)
   Vs...>;
   constexpr /*iterator*/& operator+=( difference_type n )
     requires /*cartesian-product-is-random-access*/<Const, First,    \fB(6)\fP (since C++23)
   Vs...>;
   constexpr /*iterator*/& operator-=( difference_type n )
     requires /*cartesian-product-is-random-access*/<Const, First,    \fB(7)\fP (since C++23)
   Vs...>;

   Increments or decrements the iterator.

   Let current_ denote the underlying tuple of iterators and parent_ denote the
   underlying pointer to cartesian_product_view.

   1) Equivalent to next(); return *this;
   2) Equivalent to ++*this;
   3) Equivalent to auto tmp = *this; ++*this; return tmp;
   4) Equivalent to prev(); return *this;
   5) Equivalent to auto tmp = *this; --*this; return tmp;
   6) Sets the value of *this to ret, where ret is:
     * if n > 0, the value of *this provided that next been called n times. Otherwise,
     * if n < 0, the value of *this provided that prev been called -n times. Otherwise,
     * the value of *this before the call.
   The behavior is undefined if n is not in the range [ranges::distance(*this,
   ranges::begin(*parent_)), ranges::distance(*this, ranges::end(*parent_))).
   7) Equivalent to *this += -n; return *this;.

.SH Parameters

   n - position relative to current location

.SH Return value

   1,4,6,7) *this
   2) \fI(none)\fP
   3,5) a copy of *this that was made before the change.

.SH Complexity

   6) Constant.

.SH Example

    This section is incomplete
    Reason: no example

.SH See also

   operator+ performs iterator arithmetic
   operator- \fI(function)\fP
   (C++23)

.SH Category:
     * Todo no example
